package com.example.jiaju.handle;

import com.example.jiaju.enums.ResultEnum;
import com.example.jiaju.exception.SMException;
import com.example.jiaju.until.ResultVOUntil;
import com.example.jiaju.vo.ResultVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
@Slf4j
public class SMExceptionHandle{

    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public ResultVO handle(Exception e){
        if(e instanceof SMException){
            SMException smException=(SMException) e;
            return ResultVOUntil.error(smException.getCode(),smException.getMessage());
        }else{
            log.error("[其他异常]{}",e);
            return ResultVOUntil.error(ResultEnum.OTHER_EXCRPTION.getCode(),ResultEnum.OTHER_EXCRPTION.getMsg());
        }

    }
}
